
#ifndef __EXCEPTION_HPP__
#define __EXCEPTION_HPP__

////////////////////////////////////////////////////////////////////////////////

#include <cerrno>
#include <cstring>
#include <stdexcept>

////////////////////////////////////////////////////////////////////////////////

class exception_timeout : public std::exception { };

////////////////////////////////////////////////////////////////////////////////

class exception_file_not_found : public std::exception { };

////////////////////////////////////////////////////////////////////////////////

class exception_access_violation : public std::exception { };

////////////////////////////////////////////////////////////////////////////////

class exception_disk_full : public std::exception { };

////////////////////////////////////////////////////////////////////////////////

class exception_file_exists : public std::exception { };

////////////////////////////////////////////////////////////////////////////////

class exception_unknown : public std::runtime_error
{
public:
    exception_unknown()
        : std::runtime_error(strerror(errno))
    {
    }
};

////////////////////////////////////////////////////////////////////////////////

#endif
